package com.qfjy.client;

import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.ResponseBody;

/*
用于通知Feign组件对该接口进行代理(不需要编写接口实现)，
**name属性**  指定FeignClient名称。指定我们要调用哪个服务。name属性会作为微服务的名称，用于服务发现。使用者可直接通过@Autowired注入。
**path属性** 定义当前FeignClient的统一前缀
**fallback属性** 定义容错的处理类，当调用远程接口失败或超时时，会调用对应接口的容错逻辑。fallback指定的类必须实现@FeignClient标记的接口
 */

@FeignClient(name = "SANFI-VIDEO",path = "videoInfo")
public interface VideoInfoControllerFeignClient {


    @ResponseBody
    @GetMapping("/get")
    public String selectVideoInfoByPcode(@RequestParam("pcode") String pcode);

    /*
      1、会根据FeignClient(name微服务名称）+path+请求Mapping进行字符串拼接
       String url="http://SANFI-VIDEO/videoInfo/get?pcode="+pcode;
       restTemplate.getForObject(url,....);
     */

    @ResponseBody
    @PostMapping("/insert")
    public String insertVideoInfo(@RequestParam("info") String info);


    //服务间的通信调用  调用 视频微服务接口
    //  RestTemplate: String url="http://localhost:8085/videoInfo/get?pcode="+meetingPub.getPcode();
    // Ribbon+RestTemplate:
//    String url="http://SANFI-VIDEO/videoInfo/get?pcode="+meetingPub.getPcode();
//    String videoResult= restTemplate.getForObject(url,String.class);
//
//        meetingPub.setRemark(videoResult);
}
